/* -*- C++ -*- */
#ifndef __coll_AABBColStr_Header_File__
#define __coll_AABBColStr_Header_File__

#include "common.h"
#include "core/coll/IColStr.h"
#include "core/coll/AABB.h"

namespace core
{

	namespace coll
	{


		/**
		 * Collision structure wrapper for Axes Align Bounding Box (AABB)
		 *
		 */
		class AABBColStr : public IColStr
		{
		public:
			/**
			 * Creates new wrapper on aabb
			 *
			 * @param aabb_ Bounding box description
			 */
			AABBColStr(const AABB3f* aabb_)
				:aabb(aabb_)
			{}

			/**
			 * Frees AABB collision structure wrapper.
			 */
			virtual ~AABBColStr()
			{}

			/**
			 * Gets type of collision structure
			 *
			 * @return Type of collision structure
			 */
			virtual IColStr::Type getType() const 
			{ return IColStr::AABBCStr; }

			/**
			 * Gets collision structure description
			 *
			 * @return AABB description
			 */
			virtual const void* getData() const
			{ return aabb; }
		private:
			const AABB3f* aabb;
		};

	}

}

#endif //  __coll_AABBColStr_Header_File__
